# 封装函数
FLOW_ITEM_S = {
    '计次循环': {
        'count': {
            'type': 'spinbox',
            'default': 3,
            'desc': '循环次数'
        },
        'need_start_end': True,
        'type': '流程控制命令'
    },
    '退出计次循环': {
        'need_start_end': False,
        'type': '流程控制命令'
    },
    '无限循环': {
        'need_start_end': True,
        'type': '流程控制命令'
    },
    '退出无限循环': {
        'need_start_end': False,
        'type': '流程控制命令'
    },
    '输出最近返回值': {
        'need_start_end': False,
        'type': '流程控制命令'
    },
    '打印日志': {
        'message': {
            'type': 'input',
            'desc': '日志内容'
        },
        'need_start_end': False,
        'type': '流程控制命令'
    },
    '等待': {
        'time': {
            'type': 'doubleSpinbox',
            'default': 1,
            'desc': '等待时间(秒)'
        },
        'need_start_end': False,
        'type': '流程控制命令'
    },
    '访问网页': {
        'url': {
            'type': 'input',
            'desc': '网页地址'
        },
        'retry': {
            'type': 'spinbox',
            'default': 3,
            'desc': '重试次数'
        },
        'need_start_end': False,
        'type': '网页控制命令'
    },
    # '获取网页信息': {},
    '停止页面加载': {
        'need_start_end': False,
        'type': '网页控制命令'
    },
    '鼠标向左移动': {
        'distance': {
            'type': 'spinbox',
            'default': 1,
            'desc': '移动距离'
        },
        'need_start_end': False,
        'type': '鼠标控制命令'
    },
    '鼠标向右移动': {
        'distance': {
            'type': 'spinbox',
            'default': 1,
            'desc': '移动距离'
        },
        'need_start_end': False,
        'type': '鼠标控制命令'
    },
    '鼠标按住': {
        'selector': {
            'type': 'input',
            'desc': '元素选择器'
        },
        'need_start_end': False,
        'type': '鼠标控制命令'
    },
    '鼠标释放': {
        'selector': {
            'type': 'input',
            'desc': '元素选择器'
        },
        'need_start_end': False,
        'type': '鼠标控制命令'
    },
    '元素截图': {
        'selector': {
            'type': 'input',
            'desc': '元素选择器'
        },
        'save_path': {
            'type': 'input',
            'desc': '保存路径'
        },
        'name_type': {
            'type': 'combobox',
            'options': ['格式化时间', '时间戳', 'UUID'],
            'desc': '命名方式'
        },
        'need_start_end': False,
        'type': '元素控制命令'
    },
    '元素截图上报': {
        'selector': {
            'type': 'input',
            'desc': '元素选择器'
        },
        'upload_address': {
            'type': 'input',
            'desc': '上传地址(ip:port)'
        },
        'need_start_end': False,
        'type': '元素控制命令'
    },
    '等待标注完成': {
        'port': {
            'type': 'spinbox',
            'default': 32222,
            'desc': '对外端口'
        },
        'callback_str': {
            'type': 'input',
            'default': 'ok',
            'desc': '成功指令'
        },
        'need_start_end': False,
        'type': '流程控制命令'
    },
    '元素点击': {
        'selector': {
            'type': 'input',
            'desc': '元素选择器'
        },
        'x': {
            'type': 'spinbox',
            'default': 0,
            'desc': 'x坐标'
        },
        'y': {
            'type': 'spinbox',
            'default': 0,
            'desc': 'y坐标'
        },
        'need_start_end': False,
        'type': '元素控制命令'
    },
    '元素出现': {
        'selector': {
            'type': 'input',
            'desc': '元素选择器'
        },
        'timeout': {
            'type': 'doubleSpinbox',
            'default': 0.5,
            'desc': '超时时间(秒)'
        },
        'need_start_end': True,
        'type': '流程控制命令'
    },
    '元素未出现': {
        'selector': {
            'type': 'input',
            'desc': '元素选择器'
        },
        'timeout': {
            'type': 'doubleSpinbox',
            'default': 0.5,
            'desc': '超时时间(秒)'
        },
        'need_start_end': True,
        'type': '流程控制命令'
    },
    '输入内容': {
        'selector': {
            'type': 'input',
            'desc': '元素选择器'
        },
        'content': {
            'type': 'input',
            'desc': '输入内容'
        },
        'need_start_end': False,
        'type': '元素控制命令'
    },
    '取元素属性': {
        'selector': {
            'type': 'input',
            'desc': '元素选择器'
        },
        'attribute': {
            'type': 'input',
            'desc': '属性名'
        },
        'var_name': {
            'type': 'input',
            'desc': '变量名'
        },
        'need_start_end': False,
        'type': '元素控制命令'
    },
    '取元素内纯文本': {
        'selector': {
            'type': 'input',
            'desc': '元素选择器'
        },
        'var_name': {
            'type': 'input',
            'desc': '变量名'
        },
        'need_start_end': False,
        'type': '元素控制命令'
    },
    '插入一行': {
        'need_start_end': False,
        'type': '文件控制命令'
    },
    '插入多列': {
        'excel_col_content': {
            'type': 'input',
            'desc': '列内容'
        },
        'need_start_end': False,
        'type': '文件控制命令'
    },
    '导出Excel': {
        'head_list': {
            'type': 'input',
            'desc': 'excel头'
        },
        'excel_save_path': {
            'type': 'input',
            'desc': '保存路径'
        },
        'need_start_end': False,
        'type': '文件控制命令'
    },
}
